package com.example.demo.util;

import java.net.URLEncoder;

/**
 * @title:	CommonUtil
 * @author:	许子文
 * @date:	2019年11月14日 
 * @descirption: 常用工具类
 */
public class CommonUtil {
	
	/**
	 * 
	 * @方法名 CommonUtil.java
	 * @创建者 xzw
	 * @创建日期 2021年11月7日
	 * @返回类型 String
	 * @功能描述 根据文件类型返回相应的contentType
	 *
	 */
	public static String getContentType(String fileName){
		//文件名后缀
		String fileExtension = fileName.substring(fileName.lastIndexOf("."));
		if(".bmp".equalsIgnoreCase(fileExtension)) {
			return "image/bmp";
		}
		if(".pdf".equalsIgnoreCase(fileExtension)) {
			return "application/pdf";
		}
		if(".gif".equalsIgnoreCase(fileExtension)) {
			return "image/gif";
		}
		if(".jpeg".equalsIgnoreCase(fileExtension) || ".jpg".equalsIgnoreCase(fileExtension)  || ".png".equalsIgnoreCase(fileExtension) ){
			return "image/jpeg";
		}
		if(".html".equalsIgnoreCase(fileExtension)){
			return "text/html";
		}
		if(".txt".equalsIgnoreCase(fileExtension)){
			return "text/plain";
		}
		if(".vsd".equalsIgnoreCase(fileExtension)){
			return "application/vnd.visio";
		}
		if(".ppt".equalsIgnoreCase(fileExtension) || ".pptx".equalsIgnoreCase(fileExtension)) {
			return "application/vnd.ms-powerpoint";
		}
		if(".doc".equalsIgnoreCase(fileExtension) || ".docx".equalsIgnoreCase(fileExtension)) {
			return "application/msword";
		}
		if(".xml".equalsIgnoreCase(fileExtension)) {
			return "text/xml";
		}
		if(".mp4".equalsIgnoreCase(fileExtension)) {
			return "video/mp4";
		}
		return "multipart/form-data";
	}
	
	/**
	 * 
	 * @方法名 CommonUtil.java
	 * @创建者 xzw
	 * @创建日期 2021年11月7日
	 * @返回类型 String
	 * @功能描述 处理url中的中文乱码
	 *
	 */
	public static String encodeUrlCN (String url) throws Exception{
		StringBuilder retUrl =  new StringBuilder();
		
		char[] chars = url.toCharArray();
		
		for (char c : chars) {
			if((c >= 0x4E00 && c <= 0x9FA5) || (c>=0x2160 && c<=0x2169) || '+'==c) {
				retUrl.append(URLEncoder.encode(String.valueOf(c), "utf-8"));
			} else {
				retUrl.append(c);
			}
		}
		
		String endUrl = retUrl.toString();
		
		return endUrl;
	}
	
	/**
	 * @return
	 * @创建时间: 2019年11月15日
	 * @创建人: 许子文
	 * @功能描述: 获取总页数
	 */
	public static int getTotalPages(int pageSize,long total) throws Exception{
		int totalPages = 0;
		if(0!=total&&0!=pageSize) {
			totalPages = (int) (total%pageSize==0?total/pageSize:(total/pageSize+1));
		}
		return totalPages;
	}
	
	/**
	 * @return
	 * @创建时间: 2019年11月14日
	 * @创建人: 许子文
	 * @功能描述: 把逗号隔开的每个元素加上单引号
	 */
	public static String addSingleton(String str) throws Exception{
    	String[] strs = str.split(",");
    	
    	int len = strs.length;
    	
    	StringBuilder result = new StringBuilder();
    	
    	for (int i = 0; i < len; i++) {
    		String singlestr = null;
			if(i<len-1) {
				singlestr = "'"+strs[i]+"',";
			}else {
				singlestr = "'"+strs[i]+"'";
			}
			result.append(singlestr);
		}
    	
    	return result.toString();
    }
}
